'\" t
.\" @(#)lilo.8 1.0 950728 aeb
.\" This page is based on the lilo docs, which carry the following
.\" COPYING condition:
.\"
.\" LILO program code, documentation and auxiliary programs are
.\" Copyright 1992-1998 Werner Almesberger.
.\" Extensions to LILO, documentation and auxiliary programs are
.\" Copyright 1999-2005 John Coffman.
.\" All rights reserved by the respective copyright holders.
.\" 
.\" Redistribution and use is subject to the terms set forth in
.\" the file COPYING in the source directory.
.\"
.\" Original version, Andries Brouwer (aeb@cwi.nl), 950728
.\" Added t directive, as Daniel Quinlan asked, 950824
.\" Added L switch, John Coffman, 991118
.\" Added T switch, John Coffman, 001001
.\" Added p switch, John Coffman, 010402
.\" Added x switch, John Coffman, 010409
.\" Added A switch, John Coffman, 010417
.\" Added M switch, John Coffman, 010417
.\" Added g switch, John Coffman, 010526
.\" Added z switch, John Coffman, 010829
.\" Added E switch, John Coffman, 020409
.\" Added B,F & X switches, John Coffman, 020418
.\" Added "k" option to I switch, John Coffman, 020609
.\" Added Z switch, John Coffman, 030314
.\" Added I switch options "D" and "a", John Coffman, 030513
.\" Added I switch option "R", John Coffman, 041116
.\" Added H switch, John Coffman, 050927
.\"
.TH LILO 8 "07 Oct 2005"
.SH NAME
lilo \- install boot loader
.SH SYNOPSIS
Main function:
.LP
.B " /sbin/lilo"
\- install boot loader
.LP
Auxiliary uses:
.LP
.B " /sbin/lilo -A"
\- activate/show active partition
.br
.B " /sbin/lilo -E"
\- edit header or update a bitmap file
.br
.B " /sbin/lilo -I"
\- inquire path name of current kernel
.br
.B " /sbin/lilo -M "
\- write a Master Boot Loader on a device
.br
.B " /sbin/lilo -q"
\- query map
.br
.B " /sbin/lilo -R"
\- set default command line for next reboot
.br
.B " /sbin/lilo -T"
\- tell more about specified topic
.br
.B " /sbin/lilo {-u|-U}"
\- uninstall LILO boot loader
.SH DESCRIPTION
.LP
.B lilo
installs a boot loader that will be activated the next time you boot your
system. The default configuration file
.I "/etc/lilo.conf"
(see 'man lilo.conf') will contain most options, but many, including
those which override the
configuration file, may be specified on the command line.
.LP
.TP
.BI "\-\^A " "master-device [ N ]"
Used with a single argument, inquire of active partition on device
.IR master-device ;
e.g., \fI/dev/hda\fP.  With N==0, deactivate all partitions on the device.  With
N in the range [1..n], activate the specified partition and deactivate all
others.  Normally, only primary partitions [1..4] may be activated, but if
the Extended Master Boot Loader is present on the Master Boot Record
of the device
(see the \fI-M\fP option), any partition may be made active.  Whether the
actual OS in the partition will boot from an extended partition depends on
the characteristics of the OS.  LILO boot records for Linux
may be booted from an extended partition.
.TP
.BI "\-\^b " bootdev
Specify the boot device; i.e., where the boot loader will be installed.
"\-b /dev/hda" specifies the Master Boot Record; "\-b /dev/sdb5" specifies
the first extended partition on the second SCSI disk.
.TP
.BI "\-\^B " bitmap-file
Specify a bitmap file for the boot-time graphics screen, preferably one
already pre-processed with the 'lilo \-E' command.
.TP
.B "\-\^c"
Enable map compaction. This will merge read requests from adjacent
sectors. Speeds up the booting (especially from floppy).
.TP
.BI "\-\^C " config-file
.B lilo
Specify an alternate pathname for the configuration file.
This option overrides the use of the default configuration file,
.IR "/etc/lilo.conf" .
.TP
.BI "\-\^d " delay
Specifies the delay time in tenths of a second (20 = 2 sec) before
automatically booting the first image.  Gives you time to interrupt the
automatic boot process with Shift, Alt, Ctrl, ScrollLock, or CapsLock.  If
interrupted, the `boot:' prompt is displayed.  This switch is overridden by
the appearance of
.I prompt
in the configuration file.
.TP
.BI "\-\^D " label
Use the kernel with the given label, instead of the first one
in the list, as the default kernel to boot.
.TP
.BI "\-\^E " filename.ext
If \fB.ext\fP is \fB.bmp\fP, then take the file to be a bitmap graphic file
for use in the "bitmap=" configuration file directive.  Enter an interactive
editor to create or update the color/placement information in the
bitmap file LILO header.  (see 'bmp-colors', 'bmp-table', and 'bmp-timer'
on the man page for 'lilo.conf(5)'.)
.sp
If \fB.ext\fP is \fB.dat\fP, then take the file to be a configuration file which
specifies bitmap graphic parameters, which are transferred into the LILO
header in the bitmap file of the same name.
.sp
When a \fB.bmp\fP file is modified using a graphics editor (e.g., GIMP), the
LILO header will be lost.  It can be restored using the \fB.dat\fP file,
which is used as a text-based backup for the LILO header information.
.TP
.BI "\-\^f " disk-tab
Specify disk geometry parameter file. (The default is
.IR /etc/disktab .)
.TP
.BI "\-\^F"
Override boot sector check for filesystems (e.g., swap, XFS, ...) which might be
destroyed by the installation of the LILO boot sector on the first sector of
the partition.  These filesystems use the first sector as a superblock.

Compare with "\-P ignore", which bypasses certain partition table checks.
.TP
.BI "\-\^g"
Generate cylinder/head/sector (geometric) disk addresses.  Limited to
cylinders up to 1023.  Forces compatibility with older versions of LILO.
.TP
.BI "\-\^H"
Override fatal halt when a RAID array does not have all disks active.
.TP
.BI "\-\^i " boot-loader
Specify a file to be used as the new boot loader. (The default is
.IR /boot/boot.b .)
.TP
.BI "\-I " "label [D|a|i|k|r|R]"
.B label
is taken to be the name of an image specified in the configuration file.
This command will print the path name of the corresponding kernel file, keytable
file, initial ramdisk file, root specification, or "append="
string ("i", "k", "r", "R", or "a" option). 
The "D" option ignores the
.B label
parameter, and prints the default "image=" label, or first "image=" label
if no default
.BI image
is specified.
.TP
.BI "\-\^l"
Generate 24-bit linear sector addresses instead of cylinder/head/sector
addresses.
.TP
.BI "\-\^L"
Generate 32-bit Logical Block Addresses instead of cylinder/head/sector
addresses, allowing
access to all partitions on disks with more than 1024 cylinders.
.TP
.BI "\-\^m " map-file
Use specified map file instead of the default.
.TP
.BI "\-\^M " "master-device " "[mbr|ext]"
Install a Master Boot Record on the device specified as
.IR master-device ,
selecting the Standard or Extended Master Boot Loader per the option.
The primary partition table on
.I master-device
is undisturbed.  If no valid Volume-ID (serial number)
is present, then generate one
and write it to the MBR.  If \fBmbr\fP is specified, the Standard Master
Boot Loader
will search partitions 1-4 for an active flag, and boot the flagged
partition.  Only one active flag is allowed.  If \fBext\fP is specified, the
search for an active partition will include extended partitions as well. 
The presence of the Extended Master Boot Loader on the
Master Boot Record (MBR = sector 0) of a disk
affects the operation of the \fI-A\fP option.
.TP
.BI "\-\^p"
Require interactive entry of all passwords specified as
.B """""" 
in the configuration file.
.TP
.BI "\-\^P " "{fix|ignore|\<global-option\>}"
Fix or ignore `corrupt' partition tables, i.e., partition tables
with linear and cylinder/head/sector addresses that do not correspond.
Always try
.I -P ignore
first, as
.I -P fix
will re-write the partition table, possibly destroying all partitions
on the disk.

.I -P ignore
is also used to bypass the partition table check for partition types within
the partition table which
might not allow the installation of a LILO boot sector.  Compare with the
"\-F" flag, which overrides the check of the actual boot sector.

.I "-P <global-option>"
allows the passing of any global option which may appear in the global
section (top) of the configuration file (/etc/lilo.conf).  For instance,
.I -P nowarn
will pass the "nowarn" option, just as though "nowarn" appeared in the
configuration file (same as the "\-w" switch).  Similarly,
.I -P timeout=50
will add or override the "timeout=" line in the configuration file.  Note
that the general
.I -P
switch actually duplicates a number of command line option switches. 
However, it is not strictly the same as some switches whick cause an
override of other options; e.g., "\-g" (\-P geometric), "\-L" (\-P lba32).
.TP
.B \-\^q
List the currently mapped files.
.B lilo
maintains a file, by default
.IR "/boot/map" ,
containing the name and location of the kernel(s) to boot.
This option will list the names therein.  Use with \fB-v\fP for
more detailed information about the installed boot loader.
.TP
.BI "\-\^r " root-directory
Before doing anything else, do a \fIchroot\fP to the indicated
directory. The new root directory must contain a
.I /dev
directory, and may need a
.I /boot
directory. It may also need an
.IR /etc/lilo.conf " file."
.TP
.BI "\-\^R " "command line"
This option sets the default command for the boot loader the next
time it executes. The boot loader will then erase this line: this
is a once-only command. It is typically used in reboot scripts,
just before calling `shutdown \-r'.  Used without any arguments, it will
cancel a \fIlock\fP-ed or \fIfallback\fP command line.
.TP
.BI "\-\^s " save-file
When
.B lilo
writes a new boot sector, it preserves the former contents of the sector
in a file, named by default \fI/boot/boot.NNNN\fP,
where NNNN is the hexadecimal representation of the major and minor
device numbers of the drive/partition. This option specifies the backup
save file in one of three ways: a save directory (default is '/boot') using
the default filename 'boot.NNNN' in the specified directory; a pathname template
to which '.NNNN' is appended (default would be '/boot/boot');
or the full pathname of the file, which must include the correct '.NNNN'
suffix. When used with the
\fB-u\fP option, the full file pathname must be specified.
.TP
.BI "\-\^S " save-file
Normally,
.B lilo
will not overwrite an existing boot sector save file. This options says
that overwriting is to be forced. As with \fB-s\fP, the specification may be of a
save directory, pathname template, or full pathname (which includes the '.NNNN'
suffix.)
.TP
.BI "\-\^t "
Test only. Do not really write a new boot sector or map file.
Use together with \fB-v\fP to find out what
.B lilo
is about to do.
.TP
.BI "\-\^T " option
Print out system information, some of it extracted from the system
bios.  This is more convenient than booting the LILO diagnostic
floppy on problem systems.
.I option
may be any one of the following:
.IP
.nf
   help  - print a list of available diagnostics
   ChRul - list the partition types subject to
           Change-Rules
   EBDA  - list Extended BIOS Data Area information
   geom=<drive> list drive geometry for bios drive;
           e.g., geom=0x80
   geom  - list drive geometry for all drives
   table=<drive> list the primary partition table;
           e.g., table=/dev/sda
   video - list graphic modes available to boot
           loader
.fi
.TP
.BI "\-\^u " [device-name]
Uninstall \fIlilo\fP by copying the saved boot sector back.
The '\-s' and '\-C' switches may be used with this option.
The \fIdevice-name\fP is optional.  A time-stamp is checked.
.TP
.BI "\-\^U " [device-name]
Idem, but do not check the time-stamp.
.TP
.B "\-\^v"
Increase verbosity. Giving one to five \fB-v\fP options
will make lilo more verbose, or use, \fB-v\fP \fIn\fP (n=1..5) to
set verbosity level '\fIn\fP'.
.TP
.B "\-\^V"
Print version number.
.TP
.B "\-\^w"
Used as \fB-w\fP or \fB-w-\fP, suppress warning messages.
Used as \fB-w+\fP, override \fInowarn\fP in
the configuration file, and show warning messages.
.TP
.BI "\-\^x " option
For RAID installations only.  The option may be any of the keywords
.IR none ,
.IR auto ,
.IR mbr ,
.IR mbr-only ,
or a comma separated list of additional boot devices (no spaces allowed in
the list).
.TP
.BI "\-\^X"
Reserved for LILO internal use.  May produce different
output for different LILO versions. The line beginning "CFLAGS="
will contain the compiler options used to generate this version of LILO.
.TP
.B "\-\^z"
When used with the `\-M' switch, clears the Volume-ID.  Usually used
in the following sequence to generate a new Volume-ID:
.nf
     lilo \-z \-M /dev/hda
     lilo \-M /dev/hda
.fi
.br
.TP
.BI "\-\^Z " option
Tells the boot installer whether special precautions need to be taken
because the BIOS fails to pass the correct device code in DL (\-Z0). Or may
specify that the BIOS always gets DL right (\-Z1). Corresponds to, and
overrides, the configuration file option 'bios-passes-dl='.
.LP
The above command line options correspond to the key words
in the config file indicated below.
.IP
.TS
l l.
\-b bootdev	boot=bootdev
\-B file.bmp	bitmap=file.bmp
\-c	compact
\-d dsec	delay=dsec
\-D label	default=label
\-i boot-loader	install=boot-loader
\-f file	disktab=file
\-g	geometric
\-l	linear
\-L	lba32
\-m mapfile	map=mapfile
\-P fix	fix-table
\-P ignore	ignore-table
\-s file	backup=file
\-S file	force-backup=file
\-v [N]	verbose=N
\-w	nowarn
\-x option	raid-extra-boot=option
\-Z option	bios-passes-dl=option
.TE
.SH "BOOT OPTIONS"
The options described here may be specified at boot time on
the command line when a
kernel image is booted.  These options are processed by LILO, and are
removed from the command line before it is passed to the kernel,
unless otherwise noted.
.LP
.TP
.BI lock
Locks the command line, as though 'lock' had been specified in 'lilo.conf.'
.TP
.BI "mem=###[,K,M,G]"
Specifies the maximum memory in the system in bytes, kilobytes, megabytes,
or gigabytes.
This option is not removed from the command line, and is always passed to
the kernel.
.TP
.BI nobd
Suppresses the BIOS data check.  This option is reserved for use with
non-IBM-compliant BIOS's which hang with the lines:
.sp
.nf
     Loading...............
     BIOS data check 
.fi
.TP
.BI "vga=[ASK,EXT,EXTENDED,NORMAL,###,0x###]"
Allows overriding the default video mode upon kernel startup.
.br
.SH BOOT ERRORS
The boot process takes place in two stages.  The first stage loader is a
single sector, and is loaded by the BIOS or by the loader in the MBR.  It
loads the multi-sector second stage loader, but is very space limited.  When
the first stage loader gets control, it types the letter "L"; when it is
ready to transfer control to the second stage loader it types the letter
"I".  If any error occurs, like a disk read error, it will put out a
hexadecimal error code, and then it will re-try the operation.  All hex
error codes are BIOS return values, except for the lilo-generated 40, 99 and 9A.
A partial list of error codes follows:
.br
.IP
.TS
l l.
00  no error
01  invalid disk command
02  address mark not found
03  disk write-protected
04  sector not found
06  floppy disk removed
08  DMA overrun
0A  bad sector flag
0B  bad track flag
20  controller failure
40  seek failure (BIOS)
40  cylinder>1023 (LILO)
99  invalid second stage index sector (LILO)
9A  no second stage loader signature (LILO)
AA  drive not ready
FF  sense operation failed
.TE
.br
.LP
Error code 40 is generated by the BIOS, or by LILO during the conversion of
a linear (24-bit) disk address to a geometric (C:H:S) address.  On older
systems which do not support lba32 (32-bit) addressing, this error may also
be generated.  Errors 99 and 9A usually mean the map file (\-m or map=) is
not readable, likely because LILO was not re-run after some system change,
or there is a geometry mis-match between what LILO used (lilo \-v3 to
display) and what is actually being used by the BIOS (one of the lilo
diagnostic disks, available in the source distribution, may be needed to
diagnose this problem).

When the second stage loader has received control from the first stage, it
prints the letter "L", and when it has initialized itself, including
verifying the "Descriptor Table" \- the list of kernels/others to boot \- it
will print the letter "O", to form the full word "LILO", in uppercase.

All second stage loader error messages are English text, and try to
pinpoint, more or less successfully, the point of failure.
.br
.SH INCOMPATIBILITIES
.B lilo
is known to have problems with the
.I reiserfs
introduced with the 2.2.x kernels, unless the file system is
mounted with the 'notail' option.  This incompatibility has been
resolved with reiserfs 3.6.18 and lilo 21.6.
.I reiser4
introduced with the 2.5.x kernels requires lilo 22.5.2 or later.
.sp
Beginning with version 22.0, RAID installations write the boot record to
the RAID partition. Conditional writing of MBRs may occur to aid in making
the RAID set bootable in a recovery situation, but all default actions may
be overridden. Action similar to previous versions is
achieved using the `\-x mbr-only' switch.
.SH BUGS
Configuration file options `backup' and `force-backup'
should specify a backup directory or backup file pathname template on
all RAID installations. Use of an explicit filename may not allow multiple
backup files to be created correctly. It is best to use the default mechanism,
as it works correctly in all cases.
.SH "SEE ALSO"
fdisk(8), lilo.conf(5), mkrescue(8), mkinitrd(8).
.sp
The lilo distribution comes with very extensive TeX documentation through
Version 21.  Text file README's in the source directory provide updates on
more recent topics.
.SH "AUTHORS"
Werner Almesberger <almesber@lrc.epfl.ch> (versions 0 to 21)
.br
John Coffman <johninsd@san.rr.com> (21.2 to present date)
